React Native তে Permissions API ব্যবহার করে আপনি ব্যবহারকারীর ডিভাইস থেকে বিভিন্ন ধরনের অনুমতি (permissions) সংগ্রহ করতে পারেন, যেমন ক্যামেরা, GPS, স্টোরেজ, মাইক্রোফোন ইত্যাদি। React Native তে permissions ব্যবস্থাপনা করার জন্য react-native-permissions প্যাকেজটি সবচেয়ে জনপ্রিয় এবং ব্যবহারযোগ্য প্যাকেজ।
এই প্যাকেজটি ব্যবহার করে আপনি অনুমতি চাওয়ার আগে সেগুলি পরীক্ষা করতে এবং অনুমতি না পাওয়া সত্ত্বেও কিভাবে পরবর্তী পদক্ষেপ নিতে হবে তা পরিচালনা করতে পারেন।
react-native-permissions প্যাকেজ ব্যবহার
react-native-permissions প্যাকেজটি React Native অ্যাপে বিভিন্ন ধরনের permissions চাওয়া এবং পরিচালনা করতে ব্যবহৃত হয়। এটি সঠিক permission চাওয়ার পদ্ধতি এবং তার পরবর্তী পরিচালনা (যেমন, কিভাবে ব্যবহারকারীর প্রতিক্রিয়া চাওয়া হয় এবং কোনটি গ্রহণ করা হয়) সহজ করে তোলে।
প্যাকেজ ইনস্টলেশন
প্রথমে আপনাকে react-native-permissions প্যাকেজটি ইনস্টল করতে হবে:
npm install react-native-permissionsযদি আপনি CocoaPods ব্যবহার করেন (iOS এর জন্য), তবে আপনাকে Pods ইনস্টল করতে হবে:
cd ios && pod installPermissions চাওয়া এবং পরিচালনা
React Native তে permissions চাওয়া সাধারণত এই তিনটি ধাপে ঘটে:
- Permissions চাওয়া – ডিভাইসের নির্দিষ্ট permission চাওয়া।
- Permission চেক করা – অনুমতি দেওয়া হয়েছে কি না তা চেক করা।
- Permission প্রাপ্তির পর অ্যাকশন – অনুমতি পাওয়া গেলে আপনি সেই ফিচারটি ব্যবহার করতে পারবেন।
Permission চেক এবং রিকুয়েস্ট করার উদাহরণ
নিচে একটি উদাহরণ দেওয়া হয়েছে যেখানে ক্যামেরা এবং লোকেশন permission চাওয়া হয়েছে।
import React, { useEffect, useState } from 'react';
import { View, Text, Button } from 'react-native';
import { check, request, PERMISSIONS, RESULTS } from 'react-native-permissions';
const App = () => {
const [cameraPermission, setCameraPermission] = useState(null);
const [locationPermission, setLocationPermission] = useState(null);
// ক্যামেরার পারমিশন চেক এবং রিকুয়েস্ট করা
const checkCameraPermission = async () => {
const result = await check(PERMISSIONS.IOS.CAMERA);
setCameraPermission(result);
};
const requestCameraPermission = async () => {
const result = await request(PERMISSIONS.IOS.CAMERA);
setCameraPermission(result);
};
// লোকেশনের পারমিশন চেক এবং রিকুয়েস্ট করা
const checkLocationPermission = async () => {
const result = await check(PERMISSIONS.IOS.LOCATION_WHEN_IN_USE);
setLocationPermission(result);
};
const requestLocationPermission = async () => {
const result = await request(PERMISSIONS.IOS.LOCATION_WHEN_IN_USE);
setLocationPermission(result);
};
useEffect(() => {
checkCameraPermission();
checkLocationPermission();
}, []);
return (
<View style={{ marginTop: 50 }}>
<Text>Camera Permission: {cameraPermission}</Text>
<Button
title="Request Camera Permission"
onPress={requestCameraPermission}
/>
<Text>Location Permission: {locationPermission}</Text>
<Button
title="Request Location Permission"
onPress={requestLocationPermission}
/>
</View>
);
};
export default App;ব্যাখ্যা:
check()ফাংশনটি ব্যবহার করা হয় একটি নির্দিষ্ট permission এর স্ট্যাটাস চেক করার জন্য। এটিRESULTS.GRANTED,RESULTS.DENIED, বাRESULTS.BLOCKEDএর মধ্যে একটিকে ফিরিয়ে দেয়।request()ফাংশনটি ব্যবহারকারীর অনুমতি চাওয়ার জন্য ব্যবহৃত হয়। এটিRESULTS.GRANTEDবাRESULTS.DENIEDফেরত দেয়।- এখানে ক্যামেরা এবং লোকেশন permission চাওয়া এবং চেক করা হয়েছে। এই উদাহরণে, ক্যামেরা এবং লোকেশন permissions শুধুমাত্র iOS এর জন্য দেখানো হয়েছে। Android-এর জন্য
PERMISSIONS.ANDROID.CAMERAএবংPERMISSIONS.ANDROID.ACCESS_FINE_LOCATIONব্যবহার করা হবে।
অনুমতি চেকের ফলাফল
react-native-permissions আপনাকে কিছু ভিন্ন ফলাফল প্রদান করে, যার মধ্যে রয়েছে:
RESULTS.GRANTED: Permission দেওয়া হয়েছে, এবং অ্যাপ্লিকেশনটি সেই ফিচারটি ব্যবহার করতে সক্ষম।RESULTS.DENIED: Permission অস্বীকার করা হয়েছে, তবে এটি আবার চাওয়া যেতে পারে।RESULTS.BLOCKED: Permission স্থায়ীভাবে অস্বীকার করা হয়েছে, এবং এটি আর চাওয়া যাবে না।RESULTS.UNAVAILABLE: Permission সিস্টেমে উপলব্ধ নয় (অথবা device এর জন্য উপযোগী নয়)।
পারমিশন এর পরবর্তী পদক্ষেপ
- Permission Granted হলে: যদি permission দেওয়া হয়, তখন আপনি সেই ফিচারটি ব্যবহার করতে পারেন, যেমন ক্যামেরা বা লোকেশন সেবা।
- Permission Denied হলে: আপনি ব্যবহারকারীকে অনুরোধ করতে পারেন permission দেওয়ার জন্য, অথবা এড়িয়ে যেতে পারেন এবং অ্যাপের কিছু ফিচার নিষ্ক্রিয় রাখতে পারেন।
অন্য গুরুত্বপূর্ণ Permissions
react-native-permissions প্যাকেজটি আরও অনেক ধরনের permissions সমর্থন করে, যেমন:
- Camera:
PERMISSIONS.IOS.CAMERA,PERMISSIONS.ANDROID.CAMERA - Location:
PERMISSIONS.IOS.LOCATION_WHEN_IN_USE,PERMISSIONS.ANDROID.ACCESS_FINE_LOCATION - Microphone:
PERMISSIONS.IOS.MICROPHONE,PERMISSIONS.ANDROID.RECORD_AUDIO - Storage:
PERMISSIONS.ANDROID.READ_EXTERNAL_STORAGE,PERMISSIONS.ANDROID.WRITE_EXTERNAL_STORAGE - Notifications:
PERMISSIONS.IOS.NOTIFICATIONS,PERMISSIONS.ANDROID.NOTIFICATIONS
সারাংশ
React Native তে react-native-permissions প্যাকেজ ব্যবহার করে আপনি ডিভাইসের বিভিন্ন ধরনের permissions সহজে চেক এবং রিকুয়েস্ট করতে পারেন। এটি ব্যবহারকারীর অনুমতি নেওয়ার জন্য একটি সোজা এবং কার্যকরী উপায় প্রদান করে এবং আপনাকে অ্যাপ্লিকেশনের জন্য সঠিক permissions ব্যবস্থা করতে সাহায্য করে।
Read more